Chrome插件

您所在的位置:网站首页 ipad 百度网盘倍速播放 Chrome插件

Chrome插件

2024-07-11 09:42| 来源: 网络整理| 查看: 265

目录

前言 

开发思路

插件目录结构

弹窗页面

代码下载

前言 

最近要在百度网盘看视频,网上搜索到实现倍速播放的方法有不少:

Iphone/Ipad :下载ALook浏览器,在ALook浏览器中打开百度网盘播放视频就可以选择倍速播放。

PC端浏览器:chrome浏览器打开视频播放页面,F12进入开发者模式输入console命令:

videojs.getPlayers("video-player").html5player.tech_.setPlaybackRate(2);

但是这个命令目前已经用不了,原因是百度网盘播放页面不再引用videojs库。

受到上面这条console命令的启发,决定做一个chrome插件来调节播放速度,一劳永逸 !

chrome插件开发入门可以看这篇文章:

【干货】Chrome插件(扩展)开发全攻略 - 我是小茗同学 - 博客园我花了将近一个多月的时间断断续续写下这篇博文,并精心写下完整demo。本文所有涉及到的大部分代码均在这个demo里面 ,大家可以直接下载下来运行。另外,本文图片较多,且图片服务器带宽有限,右下角的目录https://www.cnblogs.com/liuxianan/p/chrome-plugin-develop.html

对于有开发经验的小伙伴,入门chrome插件开发是很容易的,接下来分享“百度网盘视频调速器”的开发过程:

开发思路

分析百度网盘视频播放页面的HTML代码,找到video标签,利用插件的注入脚本来控制video标签速度属性。

 

 分析上面的代码,可以发现其用了attachShadow closed mode,在close模式下插件的js无法获取video标签对象,需要改为open mode,从而才能通过video更改播放速度。

插件目录结构

 manifest.json是插件的配置文件,必须放在根目录。

{ "manifest_version": 2, "name": "视频播放调速器", "description": "仅适用百度网盘", "version": "1.0", "icons":{ "128":"icon/icon128.png", "48":"icon/icon48.png", "16":"icon/icon16.png" }, "browser_action": { "default_popup": "popup.html", "default_icon": "icon/icon16.png" }, "commands": { "_execute_browser_action": { "suggested_key": { "default": "Ctrl+Shift+F", "mac": "MacCtrl+Shift+F" }, "description": "Open popup" } }, "permissions": ["tabs", "https://*/*", "http://*/*"], "content_scripts": [{ "matches": ["https://pan.baidu.com/*"], "run_at": "document_start", "all_frames": true, "js": ["js/injected.js"] }], "web_accessible_resources": ["js/shadowInjected.js"] }

向页面注入的脚本代码:

js/injected.js 

//向页面注入的脚本代码 //console.log('run Injected.js'); const injectedScript = document.createElement('script'); injectedScript.src = chrome.extension.getURL('js/shadowInjected.js'); (document.head || document.documentElement).appendChild(injectedScript);

 js/shadowInjected.js

//将网页的attachShadow closed mode改成 open mode //console.log('run shadowInjected.js'); Element.prototype._attachShadow = Element.prototype.attachShadow; Element.prototype.attachShadow = function () { return this._attachShadow( { mode: "open"}); };

注意:shadowInject.js不能直接放在"content_scripts"中注入,而要通过injected.js引用,否则不能运行修改open mode的代码。

参考解释:javascript - Override Element.prototype.attachShadow using Chrome Extension - Stack Overflow

以上代码会在打开百度网盘网页时运行,查看页面代码时会发现,close变为open,接下来就可以改变video的播放速度了,为了使用方便,用弹窗的方式来设置速度。

弹窗页面

popup.html 是插件的弹窗页面,点击安装好插件后,点击插件图标就会弹出如下图:

popup.html:

Speed Controller Please enter video speed-num from 0.1 to 16.0 go

css/popup.css

#continer{ width:150px; } #tips{ margin-top:-10px; } #number{ width:50px; } #btn1{ width:50px; } text{ display:block; }

js/popup.js

$(document).ready(function(){ $("#btn1").click(function(){ // $(this).hide(); var num = Number($("#number").val()); if(num>=0.1&&num


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3